--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/frontend/bakeBuildMeta.test.js 22b4fcce096023ec706bab5449805e34a2912643 (22b4fcce) Text, 3.77 KB
T8b949e/* SPDX-License-Identifier: 0BSD */
T8b949e/**
* Channel / commit bake oracles for scripts/bake_build_meta.js
*/
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3itTb4b4b4, Te6edf3expectTb4b4b4, Te6edf3afterEach Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3spawnSync Tb4b4b4} Tff7b72from Ta5d6ff"node:child_process"Tb4b4b4;
Tff7b72import Te6edf3fs Tff7b72from Ta5d6ff"node:fs"Tb4b4b4;
Tff7b72import Te6edf3path Tff7b72from Ta5d6ff"node:path"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3fileURLToPath Tb4b4b4} Tff7b72from Ta5d6ff"node:url"Tb4b4b4;
Tff7b72const Te6edf3repoRoot Tff7b72= Te6edf3pathTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3pathTb4b4b4.Te6edf3dirnameTb4b4b4(Te6edf3fileURLToPathTb4b4b4(Tff7b72importTb4b4b4.Te6edf3metaTb4b4b4.Te6edf3urlTb4b4b4)Tb4b4b4)Tb4b4b4, Ta5d6ff"../.."Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3bakeScript Tff7b72= Te6edf3pathTb4b4b4.Te6edf3joinTb4b4b4(Te6edf3repoRootTb4b4b4, Ta5d6ff"scripts"Tb4b4b4, Ta5d6ff"bake_build_meta.js"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3bakedPath Tff7b72= Te6edf3pathTb4b4b4.Te6edf3joinTb4b4b4(Te6edf3repoRootTb4b4b4, Ta5d6ff"meshchatx"Tb4b4b4, Ta5d6ff"src"Tb4b4b4, Ta5d6ff"_build_meta_baked.py"Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3readBakedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3text Tff7b72= Te6edf3fsTb4b4b4.Te6edf3readFileSyncTb4b4b4(Te6edf3bakedPathTb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3commit Tff7b72= Tb4b4b4(Te6edf3textTb4b4b4.Te6edf3matchTb4b4b4(Ta5d6ff/^GIT_COMMIT = "(.*)"$/mTb4b4b4) Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4] Tff7b72?? Ta5d6ff""Tb4b4b4;
Tff7b72const Tff7b72short Tff7b72= Tb4b4b4(Te6edf3textTb4b4b4.Te6edf3matchTb4b4b4(Ta5d6ff/^GIT_COMMIT_SHORT = "(.*)"$/mTb4b4b4) Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4] Tff7b72?? Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3channel Tff7b72= Tb4b4b4(Te6edf3textTb4b4b4.Te6edf3matchTb4b4b4(Ta5d6ff/^BUILD_CHANNEL = "(.*)"$/mTb4b4b4) Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4] Tff7b72?? Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3isDev Tff7b72= Ta5d6ff/^IS_DEV_BUILD = True$/mTb4b4b4.Te6edf3testTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3commitTb4b4b4, Tff7b72shortTb4b4b4, Te6edf3channelTb4b4b4, Te6edf3isDev Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3runBakeTb4b4b4(Te6edf3envOverridesTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3env Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3processTb4b4b4.Te6edf3envTb4b4b4, Tb4b4b4...Te6edf3envOverrides Tb4b4b4}Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3key Tff7b72of Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3envOverridesTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3envOverridesTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72=== Ta5d6ff"" Tff7b72|| Te6edf3envOverridesTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72== Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72delete Te6edf3envTb4b4b4[Te6edf3keyTb4b4b4]Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3result Tff7b72= Te6edf3spawnSyncTb4b4b4(Te6edf3processTb4b4b4.Te6edf3execPathTb4b4b4, Tb4b4b4[Te6edf3bakeScriptTb4b4b4]Tb4b4b4, Tb4b4b4{
Te6edf3cwdTff7b72: Te6edf3repoRootTb4b4b4,
Te6edf3envTb4b4b4,
Te6edf3encodingTff7b72: Ta5d6ff"utf8"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3resultTb4b4b4.Te6edf3statusTb4b4b4, Te6edf3resultTb4b4b4.Te6edf3stderr Tff7b72|| Te6edf3resultTb4b4b4.Te6edf3stdoutTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3readBakedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3describeTb4b4b4(Ta5d6ff"bake_build_meta channel oracles"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72let Te6edf3previous Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3afterEachTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3previous Tff7b72!= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3fsTb4b4b4.Te6edf3writeFileSyncTb4b4b4(Te6edf3bakedPathTb4b4b4, Te6edf3previousTb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Te6edf3previous Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3fsTb4b4b4.Te6edf3existsSyncTb4b4b4(Te6edf3bakedPathTb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// leave whatever last bake wrote; file is gitignored
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3snapshotTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3fsTb4b4b4.Te6edf3existsSyncTb4b4b4(Te6edf3bakedPathTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3previous Tff7b72= Te6edf3fsTb4b4b4.Te6edf3readFileSyncTb4b4b4(Te6edf3bakedPathTb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3itTb4b4b4(Ta5d6ff"nightly ref bakes is_dev with short sha"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3snapshotTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3meta Tff7b72= Te6edf3runBakeTb4b4b4(Tb4b4b4{
Te6edf3MESHCHATX_BUILD_CHANNELTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3GITHUB_REF_NAMETff7b72: Ta5d6ff"nightly-2026.07.24-abcdef0"Tb4b4b4,
Te6edf3GITHUB_SHATff7b72: Ta5d6ff"abcdef0123456789aaaa"Tb4b4b4,
Te6edf3MESHCHATX_GIT_COMMITTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3GIT_COMMITTff7b72: Ta5d6ff""Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3channelTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"nightly"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3isDevTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Tff7b72shortTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"abcdef0"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3commitTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"abcdef0"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"release tag clears is_dev"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3snapshotTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3meta Tff7b72= Te6edf3runBakeTb4b4b4(Tb4b4b4{
Te6edf3MESHCHATX_BUILD_CHANNELTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3GITHUB_REF_NAMETff7b72: Ta5d6ff"v4.8.0"Tb4b4b4,
Te6edf3GITHUB_SHATff7b72: Ta5d6ff"deadbeefcafebabe"Tb4b4b4,
Te6edf3MESHCHATX_GIT_COMMITTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3GIT_COMMITTff7b72: Ta5d6ff""Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3channelTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"release"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3isDevTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Tff7b72shortTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"deadbee"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"explicit MESHCHATX_BUILD_CHANNEL=release wins over nightly ref name"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3snapshotTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3meta Tff7b72= Te6edf3runBakeTb4b4b4(Tb4b4b4{
Te6edf3MESHCHATX_BUILD_CHANNELTff7b72: Ta5d6ff"release"Tb4b4b4,
Te6edf3GITHUB_REF_NAMETff7b72: Ta5d6ff"nightly-2026.07.24-abcdef0"Tb4b4b4,
Te6edf3MESHCHATX_GIT_COMMITTff7b72: Ta5d6ff"1234567890abcdef"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3channelTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"release"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3isDevTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Tff7b72shortTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"1234567"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"local/default channel is treated as dev"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3snapshotTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3meta Tff7b72= Te6edf3runBakeTb4b4b4(Tb4b4b4{
Te6edf3MESHCHATX_BUILD_CHANNELTff7b72: Ta5d6ff"local"Tb4b4b4,
Te6edf3GITHUB_REF_NAMETff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3GITHUB_REFTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3MESHCHATX_GIT_COMMITTff7b72: Ta5d6ff"feedface00"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3channelTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"local"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Te6edf3isDevTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3metaTb4b4b4.Tff7b72shortTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"feedfac"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────